using System.Runtime.Serialization;
using System.Windows;
using System.Windows.Markup;
using nRoute.Components;

namespace nRoute.SiteMaps
{
    /// <summary>
    /// Represents a navigation and  structure for a app, which is provided by one or more site map providers. 
    /// </summary>
    [DataContract(Name = "SiteMap")]
    public class SiteMap
		// : DependencyObject
    {
#if (!WP7)
        AreasCollection _areas;
#endif
        NavigationNode _rootNode;

#region Properties

        /// <remarks>
        /// - Specifically we've made the root-node to be a navigation node
        /// </remarks>
        [DataMember(EmitDefaultValue = false)]
        public NavigationNode RootNode
        {
            get { return _rootNode; }
            set { _rootNode = value; }
        }

#if (!WP7)

        [DataMember(EmitDefaultValue = false)]
        public AreasCollection Areas
        {
            get
            {
                if (_areas == null) _areas = new AreasCollection();
                return _areas;
            }
            set
            {
                _areas = value;
            }
        }

#endif

#endregion

    }
}